package model;
import java.util.ArrayList;
/**
 *
 * @author Gruppe 5
 */
public class UdlejningCont
{
    private ArrayList<Udlejning> udlejningsList;
    private static UdlejningCont instance;

    private UdlejningCont()
    {
        udlejningsList = new ArrayList<Udlejning>();
    }

    public static UdlejningCont getInstance()
    {
        if(instance == null)
        {
            instance = new UdlejningCont();
        }
        return instance;
    }

    public void addUdlejning(Udlejning udlejning)
    {
        udlejningsList.add(udlejning);
    }

    public int addUdlejningAutoID(Udlejning udlejning)
    {
        int nyId = 1;
        if (udlejning.getId() == 0)
        {
            if (udlejningsList.size() > 0)
            {
                int lastIndex = udlejningsList.size()-1;
                Udlejning lastUdlejning = udlejningsList.get(lastIndex);
                nyId = lastUdlejning.getId();
                nyId += 1;
            }
            udlejning.setId(nyId);
        }
        udlejningsList.add(udlejning);
        return nyId;
    }

    public Udlejning removeUdlejning(int id)
    {
        Udlejning udlejningObjekt = null;
        int index = 0;
        boolean found = false;
        while (index < udlejningsList.size() && !found)
        {
            udlejningObjekt = udlejningsList.get(index);
            if(udlejningObjekt.getId() == id)
            {
                udlejningsList.remove(index);
            }
            else
            {
                index++;
            }
        }
        return null;
    }

    public Udlejning findLaan(int id)
    {
        Udlejning udlejningObjekt = null;
        int index = 0;
        boolean found = false;
        while(index < udlejningsList.size() && !found)
        {
            udlejningObjekt = udlejningsList.get(index);
            if (udlejningObjekt.getId() == id)
            {
                found = true;
            }
            else
            {
                index++;
            }
        }
        if(found)
        {
            return udlejningsList.get(index);
        }
        else
        {
            return null;
        }
    }

    public String printLaane()
    {
        String test ="";
        for (Udlejning laanPrint : udlejningsList)
        {
            test += laanPrint.getBeskrivelse();
        }
        return test;
    }

    public ArrayList <Udlejning> udlejetList()
    {
        ArrayList<Udlejning> listUdlejning = new ArrayList<Udlejning>();
        for(Udlejning u : udlejningsList)
        {
            listUdlejning.add(u);
        }
        return listUdlejning;
    }

    public boolean sletLaan(int id)
    {
        Udlejning udlejningObjekt = null;
        int index = 0;
        boolean found = false;
        while (index < udlejningsList.size() && !found)
        {
            udlejningObjekt = udlejningsList.get(index);
            if(udlejningObjekt != null)
            {
                udlejningsList.remove(index);
                found = true;
            }
            index++;
        }
        return found;
    }
}
